草庐IT

sql - 在 MySQL 中对数据库表进行分区

全部标签

ruby-on-rails - 仅在一个 block 中建立与另一个数据库的连接?

在一个Rails应用程序中,我在纯ruby​​中有这段代码:classLinkCreatorattr_accessor:animaldefinitialize(animal:)@animal=animalenddefcall"something#{link_id}"endprivatedeflink_idconnection.execute(sql_request).first.firstenddefsql_request"SELECTfieldFROMtableWHEREfield_id='#{field_id}'LIMIT1"enddeffield_idanimal.field_i

ruby-on-rails - 是否有 Ruby 数据库迁移 gem,可帮助您将内容从旧结构移动到新结构?

是否有任何Rubygem/库可以帮助您从旧的数据库结构迁移到新的结构?ActiveRecord迁移在跟踪新数据库结构方面做得很好,但我想知道是否有什么可以帮助您将整个遗留数据库迁移到新结构:transfer_from(:source_table=>'person',:destination_table=>'dudes_and_dudets')dofrom:name,:to=>:full_namefrom:dob,:to=>:agedo|dob|#thiswould,forexample,loadtheresult(Date.today-dob)/60/60/24/365#ofthebl

ruby-on-rails - Rails 应用程序和 goliath api 以及数据库/模型共享

我正在尝试使用Goliath框架创建异步API。服务应该写入mysql,将消息添加到RabbitMQ并接收返回的响应。还应该有一个用Rails构建的单独的管理应用程序。我对此有几个问题:有没有办法在Rails和Goliath之间有效地共享模型?在em中使用Activerecord或任何其他orm有什么问题吗?是否有任何最佳实践、配置(连接池大小、驱动程序)或其他相关选项?我必须使用什么来接收来自AMQP的消息?构建一个单独的eventmachine守护进程会更好,还是我可以以某种方式使用Goliath的守护进程?感谢您的提前。 最佳答案

sql - 在 Rails 中使用连接执行 update_all

在这种情况下,Rails对原始SQL的抽象让我抓狂。在MySQL中我可以这样做:UPDATEFROMtasksAStLEFTJOINprojectsaspONt.project_id=p.idSETt.invoice_id=7WHEREp.organization_id==42ANDt.invoice_idISNULL我如何在Rails3.0.1中使用预先加载来做到这一点?我已经尝试了以下所有方法:Tasks.joins(:project).where('projects.organization_id'=>42,:invoice_id=>nil).update_all(:invoic

sql - 如何查看 SQL ActiveRecord 生成的内容?

我想检查一些由ActiveRecord生成的查询,但我不需要实际运行它们。有没有办法在返回结果之前获取查询? 最佳答案 这两篇文章都应该可以帮助您做您想做的事。http://weblog.jamisbuck.org/2007/1/8/watching-activerecord-do-it-s-thinghttp://weblog.jamisbuck.org/2007/1/31/more-on-watching-activerecord 关于sql-如何查看SQLActiveRecord生

sql - 用于 250K+ 字符串的通配符搜索的 Fast(er) 方法

我在MySQL数据库中有一个英语词典,其中只有超过250K个条目,我正在使用一个简单的ruby​​前端在字符串的开头使用通配符来搜索它。到目前为止,我一直这样做:SELECT*FROMwordsWHEREwordLIKE'_e__o'甚至SELECT*FROMwordsWHEREwordLIKE'____s'我总是知道单词的确切长度,但除了一个字符之外的所有字符都可能是未知的。这比糖蜜慢,比没有前导通配符的类似查询慢大约15倍,因为无法使用该列的索引。我尝试了几种方法来缩小搜索范围。例如,我添加了26个额外的列,其中包含每个单词的单个字母计数,并首先使用这些列来缩小搜索范围。我也试过按

ruby - 对返回值的 ruby​​ 操作进行基准测试

基准测试获取一个block并返回时间:http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.htmlrequire'benchmark'putsBenchmark.measure{"a"*1_000_000}如果你想对一个操作进行基准测试并同时获得返回值和运行时间怎么办?或者,换句话说,闭包可以修改传递给它的对象吗? 最佳答案 闭包可以修改其范围内的对象,如下所示:require'benchmark'a=nilputsBenchmark.measure{a=

ruby-on-rails - 在时间表中对无限期重复的任务进行建模(类似日历的 Rails 应用程序)

这是一个很大的绊脚石。警告:以下不是问题,而是对我的想法的解释。我的问题是——你有更好的方法吗?是否有一些我不熟悉的常用技术?看起来这是一个微不足道的问题。所以你有任务模型。您可以创建任务、完成任务、销毁任务。然后你有经常性的任务。它就像常规任务一样,但它附加了一个重复规则。但是,任务可以无限期地重复——您可以在计划中提前一年,您应该会看到任务出现。因此,当用户创建一个循环任务时,您不会想在未来百年内构建数千个任务,并将它们保存到数据库中,对吧?所以我开始思考—如何创建它们?一种方法是在您查看日程安排时创建它们。因此,当用户提前一个月移动时,将创建任何重复性任务。当然,这意味着您不能再

ruby-on-rails - 设置没有种子数据的数据库

我需要用表格等设置我的数据库,但在某些情况下我不想加载我的种子数据。我也不想每次想忽略我的种子数据时都删除或移动我的db/seeds.rb文件。有没有办法执行rakedb:setup的任务并忽略种子数据? 最佳答案 是的。只需使用以下两个命令:rakedb:createrakedb:schema:loadrakedb:setup所做的只是创建数据库(db:create),从db/schema.rb加载数据(db:schema:load),然后插入种子数据(db:seed)。您可以单独执行这些步骤。

ruby - 按升序和降序对多个值进行排序

我正在尝试根据不同的属性对一组对象进行排序。其中一些属性我想按升序排序,一些属性按降序排序。我已经能够按升序或降序进行排序,但无法将两者结合起来。这是我正在使用的简单类:classDogattr_reader:name,:genderDOGS=[]definitialize(name,gender)@name=name@gender=genderDOGS然后我可以实例化一些狗,稍后进行分类。@rover=Dog.new("Rover","Male")@max=Dog.new("Max","Male")@fluffy=Dog.new("Fluffy","Female")@cocoa=Do